package com.tonyodev.fetch2core.server;

import org.jetbrains.annotations.NotNull;

import java.io.IOException;

/**
 * 文件读取接口
 *
 * @since 2021-05-20
 */
public interface FileResourceTransporterWriter {
    /**
     * 发送文件请求
     *
     * @param fileRequest fileRequest
     * @throws IOException 发送失败
     */
    void sendFileRequest(@NotNull FileRequest fileRequest) throws IOException;

    /**
     * 发送文件请求
     *
     * @param fileResponse 文件请求
     * @throws IOException 发送失败
     */
    void sendFileResponse(@NotNull FileResponse fileResponse) throws IOException;

    /**
     * 发送原始字节
     *
     * @param byteArray 字节数组
     * @param offset 偏离量
     * @param length 长度
     * @throws IOException
     */
    void sendRawBytes(@NotNull byte[] byteArray, int offset, int length) throws IOException;
}
